﻿using System.ComponentModel;

namespace Brjnk.Common
{
    public abstract class BackgroundOperationStateBase : INotifyPropertyChanged
    {
        public abstract string Name { get; }

        public abstract string Info { get; }

        public abstract string LongInfo { get; }

        public abstract string NameLocalizationKey { get; }

        public abstract string InfoLocalizationKey { get; }

        public abstract string LongInfoLocalizationKey { get; }

        public abstract bool IsRunning { get; }

        public abstract bool ShowInList { get; }

        public event PropertyChangedEventHandler PropertyChanged;

        protected void OnPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}